using System.Collections.Generic;
using System.IO;


namespace Yahtzee.Game
{
    public class BovensteSectie : Sectie
    {

        private ZelfdeAantalOgen[] combinaties;

        public BovensteSectie()
        {
            combinaties = new ZelfdeAantalOgen[6];
            for (int i = 1; i <= combinaties.Length; i++)
            {
                combinaties[i - 1] = new ZelfdeAantalOgen(i);
            }
        }

        public override int getScore()
        {
            return getSubtotaal() + getBonus();
        }

        public int getSubtotaal()
        {
            int totaal = 0;
            foreach (ZelfdeAantalOgen combi in combinaties)
            {
                if (!combi.isVrij())
                {
                    totaal += combi.getScore();
                }
            }
            return totaal;
        }

        public int getBonus()
        {
            return getSubtotaal() < 63 ? 0 : 35;
        }

        public override Scorecombinatie[] geefCombinaties()
        {
            List<Scorecombinatie> vrijeCombinaties = new List<Scorecombinatie>();
            foreach (Scorecombinatie sb in combinaties)
            {
                vrijeCombinaties.Add(sb);
            }
            return vrijeCombinaties.ToArray();
        }

        public override void print(TextWriter output)
        {
            foreach (Scorecombinatie c in combinaties)
            {
                c.write(output);
            }
            output.WriteLine("  -------");
            output.Write("     subtotaal:{0,11}", getSubtotaal());
            output.WriteLine();
            output.Write("         bonus:{0,11}", getBonus());
            output.WriteLine();
            output.Write("  totaal boven:{0,11}", getScore());
            output.WriteLine();
        }
    }
}